package entidades.DAOs;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import utilidades.ConexionBD;
import entidades.Partido;
import entidades.DTOs.DTOPuntaje;

public class DAOpuntajes {
	
	public static ArrayList <DTOPuntaje> selectPuntajes(int id_equipo) throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT P.id_jugador, P.id_partido, amarilla, calificacion, figuraCancha, golesConvertidos, "
        				+"golesRecibidos, jugoMenos20min, penalesAtajados, penalesErrados, penalesConvertidos, golesEnContra, roja, P.id_fecha \n"
        				+ "FROM puntajedeljugador as P, jugador as J \n"
                        + "WHERE "+id_equipo+" = J.id_equipo1raDivision and P.id_jugador = J.id_jugador;";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        ArrayList <DTOPuntaje> listaPuntajes = new ArrayList <DTOPuntaje>();
        
        while(resultadoConsulta.next()){
                DTOPuntaje filaPuntaje = new DTOPuntaje();
                filaPuntaje.setId_jugador(resultadoConsulta.getInt(1));
                filaPuntaje.setId_partido(resultadoConsulta.getInt(2));
                filaPuntaje.setAmarilla (resultadoConsulta.getBoolean(3));
                filaPuntaje.setCalificacion(resultadoConsulta.getInt(4));
                filaPuntaje.setFiguraCancha(resultadoConsulta.getBoolean(5));
                filaPuntaje.setGolesConvertidos(resultadoConsulta.getInt(6));
                filaPuntaje.setGolesRecibidos(resultadoConsulta.getInt(7));
                filaPuntaje.setJugoMenos20Min(resultadoConsulta.getBoolean(8));
                filaPuntaje.setPenalesAtajados(resultadoConsulta.getInt(9));
                filaPuntaje.setPenalesErrados(resultadoConsulta.getInt(10));
                filaPuntaje.setPenalesConvertidos(resultadoConsulta.getInt(11));
                filaPuntaje.setGolesEnContra(resultadoConsulta.getInt(12));
                filaPuntaje.setRoja(resultadoConsulta.getBoolean(13));
                filaPuntaje.setId_fecha(resultadoConsulta.getInt(14));
                
                listaPuntajes.add(filaPuntaje);
                
        		}
        
        ConexionBD.desconectar();

        return listaPuntajes;
                

		}

	public static ArrayList <DTOPuntaje> getPuntajes(int id_jugador, int id_fecha)throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT id_jugador, id_partido, amarilla, calificacion, figuraCancha, golesConvertidos, "
        				+"golesRecibidos, jugoMenos20min, penalesAtajados, penalesErrados, penalesConvertidos, golesEnContra, roja, id_fecha \n"
        				+ "FROM puntajedeljugador \n"
                        + "WHERE "+id_fecha+" = id_fecha and "+id_jugador+" = id_jugador;";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        ArrayList <DTOPuntaje> listaPuntajes = new ArrayList <DTOPuntaje>();
        
        while(resultadoConsulta.next()){
                DTOPuntaje filaPuntaje = new DTOPuntaje();
                filaPuntaje.setId_jugador(resultadoConsulta.getInt(1));
                filaPuntaje.setId_partido(resultadoConsulta.getInt(2));
                filaPuntaje.setAmarilla (resultadoConsulta.getBoolean(3));
                filaPuntaje.setCalificacion(resultadoConsulta.getInt(4));
                filaPuntaje.setFiguraCancha(resultadoConsulta.getBoolean(5));
                filaPuntaje.setGolesConvertidos(resultadoConsulta.getInt(6));
                filaPuntaje.setGolesRecibidos(resultadoConsulta.getInt(7));
                filaPuntaje.setJugoMenos20Min(resultadoConsulta.getBoolean(8));
                filaPuntaje.setPenalesAtajados(resultadoConsulta.getInt(9));
                filaPuntaje.setPenalesErrados(resultadoConsulta.getInt(10));
                filaPuntaje.setPenalesConvertidos(resultadoConsulta.getInt(11));
                filaPuntaje.setGolesEnContra(resultadoConsulta.getInt(12));
                filaPuntaje.setRoja(resultadoConsulta.getBoolean(13));
                filaPuntaje.setId_fecha(resultadoConsulta.getInt(14));                
                listaPuntajes.add(filaPuntaje);
                
        		}
        
        ConexionBD.desconectar();

        return listaPuntajes;
	}

	public static void guardarPuntaje(DTOPuntaje puntaje) throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub
		ConexionBD.conectar();
		Statement sql = ConexionBD.conexion.createStatement();
		sql.executeUpdate("INSERT INTO puntajedeljugador " +
											"(id_jugador, id_partido, id_fecha, amarilla, calificacion, figuraCancha, golesConvertidos, golesRecibidos, jugoMenos20min, penalesAtajados, penalesErrados, penalesConvertidos, golesEnContra, roja)" +
											"VALUES("+puntaje.getId_jugador()+","+puntaje.getId_partido()+","+puntaje.getId_fecha()+","+puntaje.isAmarilla()+","+puntaje.getCalificacion()+","+puntaje.isFiguraCancha()+","+puntaje.getGolesConvertidos()+","+puntaje.getGolesRecibidos()+","+puntaje.isJugoMenos20Min()+","+puntaje.getPenalesAtajados()+","+puntaje.getPenalesErrados()+","+puntaje.getPenalesConvertidos()+","+puntaje.getGolesEnContra()+","+puntaje.isRoja()+");");
		ConexionBD.desconectar();
	}

	public static void ActualizarPuntaje(DTOPuntaje dtoPuntaje)throws SQLException, ClassNotFoundException  {
		// TODO Auto-generated method stub
		
		ConexionBD.conectar();
		Statement sql = ConexionBD.conexion.createStatement();
		sql.executeUpdate("UPDATE puntajedeljugador " +
				 "SET amarilla = "+"'"+dtoPuntaje.isAmarilla()+"'"+", calificacion = "+dtoPuntaje.getCalificacion()+", figuraCancha = "+dtoPuntaje.isFiguraCancha()+", golesConvertidos = "+dtoPuntaje.getGolesConvertidos()+ ", golesRecibidos = "+dtoPuntaje.getGolesRecibidos()+", jugoMenos20Min = "+dtoPuntaje.isJugoMenos20Min()+", penalesAtajados = "+dtoPuntaje.getPenalesAtajados()+", penalesErrados = "+dtoPuntaje.getPenalesErrados()+", penalesConvertidos = "+dtoPuntaje.getPenalesConvertidos()+", golesEnContra = "+dtoPuntaje.getGolesEnContra()+", roja = "+dtoPuntaje.isRoja()+" \n"
				+"WHERE id_jugador = "+dtoPuntaje.getId_jugador()+" and id_partido = "+dtoPuntaje.getId_partido()+" and id_fecha= "+dtoPuntaje.getId_fecha()+";");
		ConexionBD.desconectar();
	}

public static DTOPuntaje getPuntaje(int id_jugador, int id_fecha)throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT id_jugador, id_partido, amarilla, calificacion, figuraCancha, golesConvertidos, "
        				+"golesRecibidos, jugoMenos20min, penalesAtajados, penalesErrados, penalesConvertidos, golesEnContra, roja, id_fecha \n"
        				+ "FROM puntajedeljugador \n"
                        + "WHERE "+id_fecha+" = id_fecha and "+id_jugador+" = id_jugador;";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        DTOPuntaje filaPuntaje = new DTOPuntaje();
        if(resultadoConsulta.next()){
               
        	 filaPuntaje.setId_jugador(resultadoConsulta.getInt(1));
             filaPuntaje.setId_partido(resultadoConsulta.getInt(2));
             filaPuntaje.setAmarilla (resultadoConsulta.getBoolean(3));
             filaPuntaje.setCalificacion(resultadoConsulta.getInt(4));
             filaPuntaje.setFiguraCancha(resultadoConsulta.getBoolean(5));
             filaPuntaje.setGolesConvertidos(resultadoConsulta.getInt(6));
             filaPuntaje.setGolesRecibidos(resultadoConsulta.getInt(7));
             filaPuntaje.setJugoMenos20Min(resultadoConsulta.getBoolean(8));
             filaPuntaje.setPenalesAtajados(resultadoConsulta.getInt(9));
             filaPuntaje.setPenalesErrados(resultadoConsulta.getInt(10));
             filaPuntaje.setPenalesConvertidos(resultadoConsulta.getInt(11));
             filaPuntaje.setGolesEnContra(resultadoConsulta.getInt(12));
             filaPuntaje.setRoja(resultadoConsulta.getBoolean(13));
             filaPuntaje.setId_fecha(resultadoConsulta.getInt(14));
               
        		}
        
        ConexionBD.desconectar();

        return filaPuntaje;
	}


}


